package com.itheima.d1_exception;

import java.util.Scanner;

//目标：掌握自定义异常的方式
public class Demo3 {
    public static void main(String[] args) {
        try {
            method();
        } catch (IllegalAgeException e) {
            e.printStackTrace();
            //未来这个异常的处理方案：可以记录在磁盘文件中，可以打包压缩，可以上传网络！
            //不仅仅局限于打印到控制台！
        }
        System.out.println("后续代码...");
    }


    public static void method() throws IllegalAgeException{
        //需求：键盘录入新冠核酸注射者的年龄，年龄要求是5~60岁，一旦年龄超出界限，使用异常提醒！
        //1.不使用异常管理代码中的问题，实现这个需求
        //1.1 键盘录入，使用Scanner
        Scanner sc = new Scanner(System.in);

        //1.2 提示并输入年龄
        System.out.println("请输入疫苗接种人员的年龄：");
        int age = sc.nextInt();

        //1.3 判断年龄是否合法！
        if (age < 5 || age > 60) {
            //System.out.println("年龄非法！接种人员必须在5到60岁之间！");
            //return;
            //现在打印语句的这个提醒是在控制台提醒，为了逻辑越来越多，控制台的打印内容也很多，就很容易忽略这条提示信息！
            //其次：未来项目一旦上线，不在开发环境中，就没有控制台了！请问这个提醒去哪看？
            //需要的管理方案：能够自行处理，能够选择在不同界面、不同环境中使用！推荐用自定义异常的方式管理

            //2.JDK没有提供这种年龄非法的异常，只能自己定义，写一个IllegalAgeException异常类
            throw new IllegalAgeException("年龄非法！接种人员必须在5到60岁之间！");
            //这段逻辑中，异常对象并没有try catch，最终还是jvm虚拟机处理！
        }

        //1.4 如果年龄合法，接种成功！
        System.out.println("接种成功！");
    }
}
